Matthias Clasen [Wed, 5 Jun 2019 00:31:53 +0000 (00:31 +0000)]
Bring brink skip_allocate
This was removed by accident in
580aa8204f45768,
together with some no longer needed popover
special-casing.
Benjamin Otte [Tue, 4 Jun 2019 14:59:32 +0000 (14:59 +0000)]
docs: Remove mention of queue_draw_area()
and queue_draw_region(). They're gone since
73650c6da2b6171d10633038f74088980e8a7fc7.
Timm Bäder [Tue, 4 Jun 2019 14:32:49 +0000 (16:32 +0200)]
rendernodeimpl: Inline container_node_get_bounds into _new
It's the only caller of the function and we can avoid a second loop over
all child nodes this way.
Timm Bäder [Tue, 4 Jun 2019 14:14:30 +0000 (16:14 +0200)]
snapshot: Make append_node_internal transfer-full
There is only one case where we do *not* directly unref the node again
after calling this.
Benjamin Otte [Tue, 4 Jun 2019 04:24:28 +0000 (04:24 +0000)]
Merge branch 'for-master' into 'master'
For master
See merge request GNOME/gtk!911
Benjamin Otte [Mon, 3 Jun 2019 23:45:17 +0000 (01:45 +0200)]
widget-factory: Show proper separators
Benjamin Otte [Tue, 4 Jun 2019 04:09:31 +0000 (06:09 +0200)]
builder: Allow values of type GType
In particular this allows setting the item-type property of GListStore.
Benjamin Otte [Tue, 4 Jun 2019 03:54:16 +0000 (05:54 +0200)]
builder: Make GListStore buildable
Treats GListStore like any other object and allows <child> to add items
to it.
Benjamin Otte [Mon, 3 Jun 2019 16:21:10 +0000 (18:21 +0200)]
testsuite: Add tests for printing/parsing transforms
Matthias Clasen [Mon, 3 Jun 2019 16:41:17 +0000 (16:41 +0000)]
Merge branch 'transform-tests' into 'master'
Transform tests
See merge request GNOME/gtk!910
Matthias Clasen [Mon, 3 Jun 2019 16:18:55 +0000 (16:18 +0000)]
gsk: Add some more transform tests
Tests around identity. Seems trivial, but
still managed to find a bug.
Matthias Clasen [Mon, 3 Jun 2019 16:19:57 +0000 (16:19 +0000)]
gsk: Fix printing of identity transforms
These need to print as "none", otherwise
the parser does not accept them.
Matthias Clasen [Mon, 3 Jun 2019 16:15:16 +0000 (16:15 +0000)]
Cosmetics
Fix up a variable name mismatch in GskTransform docs.
Matthias Clasen [Mon, 3 Jun 2019 16:10:09 +0000 (16:10 +0000)]
Move transform tests to the gsk suite
That is where they belong.
Benjamin Otte [Mon, 3 Jun 2019 15:45:20 +0000 (15:45 +0000)]
Merge branch 'for-master' into 'master'
rendernodeparser: Handle Cairo being stupid
See merge request GNOME/gtk!909
Timm Bäder [Mon, 3 Jun 2019 15:36:31 +0000 (17:36 +0200)]
GskTransform: NULL is a valid transform
Benjamin Otte [Mon, 3 Jun 2019 15:20:59 +0000 (17:20 +0200)]
rendernodeparser: Handle Cairo being stupid
Cairo writes to finished streams, so we have to make sure to keep the
stream around to allow it to do that.
Timm Bäder [Mon, 3 Jun 2019 15:07:26 +0000 (17:07 +0200)]
gl renderer: Dont' memcmp() a GskTransform
Timm Bäder [Mon, 3 Jun 2019 14:56:20 +0000 (16:56 +0200)]
widget: Unref priv->{allocated_,}transform
Timm Bäder [Mon, 3 Jun 2019 14:55:59 +0000 (16:55 +0200)]
gl renderer: Don't ref transform twice
That's gonna leak it otherwise.
Timm Bäder [Mon, 3 Jun 2019 14:47:58 +0000 (16:47 +0200)]
glyphcache: Don't leak hashtables
Timm Bäder [Mon, 3 Jun 2019 14:20:12 +0000 (16:20 +0200)]
GskTransform: Ignore identity transforms
We often end up with e.g. a scale of 1 or a translation by 0/0. Ignore
those transforms since they don't do anything.
Timm Bäder [Mon, 3 Jun 2019 13:54:25 +0000 (15:54 +0200)]
gl renderer: Ref transform before using it
Fixes #1929
Timm Bäder [Mon, 3 Jun 2019 13:54:13 +0000 (15:54 +0200)]
gl renderer: Dont' unnecessarily to_matrix transforms
Matthias Clasen [Mon, 3 Jun 2019 14:57:46 +0000 (14:57 +0000)]
Merge branch 'menu-sizing' into 'master'
menu: Update scrollbar policy
Closes #1930
See merge request GNOME/gtk!908
Matthias Clasen [Mon, 3 Jun 2019 14:47:48 +0000 (14:47 +0000)]
menu: Update scrollbar policy
We want to avoid sizing problems for small menus
due to the vertical scrollbar imposing a min-height on
its slider.
Closes: https://gitlab.gnome.org/GNOME/gtk/issues/1930
Benjamin Otte [Mon, 3 Jun 2019 11:29:54 +0000 (11:29 +0000)]
Merge branch 'cherry-pick-
ae2ef147' into 'master'
gtk: fix weed_out_neg_zero() in spinbutton and scale
See merge request GNOME/gtk!906
Daniel Mustieles [Mon, 3 Jun 2019 10:26:36 +0000 (12:26 +0200)]
Updated Spanish translation
Matthias Clasen [Mon, 3 Jun 2019 03:07:31 +0000 (03:07 +0000)]
Merge branch 'glyph-memdup' into 'master'
gl: Avoid a memdup in glyph upload
See merge request GNOME/gtk!907
Matthias Clasen [Mon, 3 Jun 2019 02:46:12 +0000 (02:46 +0000)]
gl: Avoid a memdup in glyph upload
We don't need to dup the memory here if we
set up the image surface properly. This won't
matter for most glyphs, but some of them can
be big.
Matthias Clasen [Mon, 3 Jun 2019 02:28:24 +0000 (02:28 +0000)]
Merge branch 'big-glyphs' into 'master'
Big glyphs
See merge request GNOME/gtk!904
Matthias Clasen [Mon, 3 Jun 2019 01:06:31 +0000 (01:06 +0000)]
Save gsk output from ci
Matthias Clasen [Mon, 3 Jun 2019 00:51:09 +0000 (00:51 +0000)]
testsuite: Pass --output for gsk tests
We want to keep the output from ci runs.
So we now write the .out.png and .diff.png
files to build/testsuite/gsk/compare/$RENDERER.
Matthias Clasen [Mon, 3 Jun 2019 00:40:43 +0000 (00:40 +0000)]
gsk tests: Add an --output option
This will be used to save artifacts in ci.
Matthias Clasen [Sun, 2 Jun 2019 20:55:34 +0000 (20:55 +0000)]
gl: Fix glyph cache aging
The logic here seems faulty. We want to keep
a timestamp that tells us when the glyph was
last used, so always update the timestamp.
And whenever we use a glyph, it turns 'young'
again, so remove it from the old pixels
accounting.
The (MAX_AGE, MAX_AGE+CHECK_INTERVAL) interval
is only relevant to prevent us from turning
a cached glyph old more than once, and that
is already taken care of.
Matthias Clasen [Sun, 2 Jun 2019 22:22:17 +0000 (22:22 +0000)]
Add code to dump out the glyph caches
Matthias Clasen [Sun, 2 Jun 2019 22:21:05 +0000 (22:21 +0000)]
gl: Improve cache dropping code
There was a TODO here to avoid iterating the
glyphs multiple times, so avoid that. And
actually log the number of glyphs that was dropped.
Matthias Clasen [Sun, 2 Jun 2019 20:53:07 +0000 (20:53 +0000)]
gl: Improve glyph cache logging
Use g_message to be consistent, and make the
message fit a line.
Matthias Clasen [Sun, 2 Jun 2019 20:52:26 +0000 (20:52 +0000)]
gl: Log creation of glyph caches
Now that they can be of different sizes, this
is somewhat interesting.
Matthias Clasen [Sun, 2 Jun 2019 19:14:34 +0000 (19:14 +0000)]
gsk: Test huge glyphs
These don't fit in the glyph cache.
Matthias Clasen [Sun, 2 Jun 2019 19:42:14 +0000 (19:42 +0000)]
gl: Make the glyph cache survive big glyphs
Create an extra atlas of just the right size for
each huge glyph. Not pretty, but works.
Matthias Clasen [Sun, 2 Jun 2019 19:13:38 +0000 (19:13 +0000)]
gsk: Test big glyphs
These are big, but still fit in the glyph cache.
Therefore, the test succeeds.
Michael Natterer [Mon, 3 Jun 2019 00:22:20 +0000 (00:22 +0000)]
gtk: fix weed_out_neg_zero() in spinbutton and scale
It was not copying the terminating \0 in the string, breaking output
in spinbutton (didn't try scale). Fixes #3452.
(cherry picked from commit
ae2ef1472c69ad61ed8d19d932da4ca04c2a13ef)
Benjamin Otte [Mon, 3 Jun 2019 00:22:40 +0000 (00:22 +0000)]
Merge branch 'for-master' into 'master'
For master
See merge request GNOME/gtk!903
Matthias Clasen [Sun, 2 Jun 2019 23:34:02 +0000 (23:34 +0000)]
Merge branch 'wip/chergert/marshalling-gtk4' into 'master'
gtk: fix all uses of g_cclosure_marshal_generic
See merge request GNOME/gtk!905
Christian Hergert [Sun, 2 Jun 2019 21:07:27 +0000 (14:07 -0700)]
gtk: fix all uses of g_cclosure_marshal_generic
This adds specific marshallers for all of the locations where a generic
marshaller is being used. It also provides va_marshallers to reduce the
chances that we get stack traces from perf going through ffi_call_unix64.
This is forward ported from gtk-3-24.
# Conflicts:
# gtk/gtkeventcontrollerkey.c
# gtk/gtkeventcontrollermotion.c
# gtk/gtkgesture.c
# gtk/gtkgesturemultipress.c
Benjamin Otte [Fri, 31 May 2019 03:23:42 +0000 (05:23 +0200)]
gtk-demo: Fix sliding puzzle demo
1. Menubuttons aren't buttons
2. For paintables without aspect ratios, use 1.0
Benjamin Otte [Sun, 2 Jun 2019 12:16:45 +0000 (14:16 +0200)]
transform: Coalesce similar transforms
If somebody does a transform like
scale(5) scale(10) translate(1,1) translate(5,0)
store it instead as
scale(50) translate(6,1)
This way, less memory is consumed and transforms are easier to read.
In particular, this simplifies the typical transforms we do in GTK,
which are just one translation after another.
Matthias Clasen [Sun, 2 Jun 2019 15:54:50 +0000 (15:54 +0000)]
Don't generate mipmaps needlessly
GL_LINEAR doesn't use mipmaps, so don't generate them.
Benjamin Otte [Sun, 2 Jun 2019 13:06:50 +0000 (15:06 +0200)]
transform: Treat 0 perspective transforms as identity
This happens if you apply a perspective transform and its inverse, which
is the negative version of the perspective.
Piotr Drąg [Sun, 2 Jun 2019 12:47:42 +0000 (14:47 +0200)]
Update Polish translation
Timm Bäder [Sun, 2 Jun 2019 09:39:25 +0000 (11:39 +0200)]
gl renderer: Remove homegrown transform_bounds code
GskTransform can do this for us now.
Timm Bäder [Sun, 2 Jun 2019 08:33:30 +0000 (10:33 +0200)]
transform: Add G_GNUC_WARN_UNUSED_RESULT annotations
These functions return the new transform so their return value should
really never be ignored.
Timm Bäder [Sun, 2 Jun 2019 08:25:39 +0000 (10:25 +0200)]
gl renderer: Fix scale computation
We don't need to just look at the scale of the new modelview matrix, but
at the one we get when multiplying the new one with the current one.
Test case attached.
Timm Bäder [Sun, 2 Jun 2019 07:55:11 +0000 (09:55 +0200)]
gl renderer: Use GskTransform in render ops builder
for the modelview matrix. We need this later.
Timm Bäder [Sun, 2 Jun 2019 06:31:44 +0000 (08:31 +0200)]
gl renderer: Fix rounded rect intersection code
Test case attached.
Fixes #1920
Matthias Clasen [Sat, 1 Jun 2019 04:25:08 +0000 (04:25 +0000)]
Add gtkmenubarprivate.h
Move private api into a private header.
Matthias Clasen [Sat, 1 Jun 2019 04:18:23 +0000 (04:18 +0000)]
Cosmetics
Remove comments that are old enough to still
talk about option menus and item factories.
Matthias Clasen [Sat, 1 Jun 2019 19:47:32 +0000 (19:47 +0000)]
Merge branch 'restack-gtk4' into 'master'
GDK W32: Ensure correct stacking of popup windows (GTK4)
See merge request GNOME/gtk!902
Руслан Ижбулатов [Sat, 1 Jun 2019 19:11:13 +0000 (19:11 +0000)]
GDK W32: Ensure correct stacking of popup windows
1) In the SetWindowPos() function (and the WINDOWPOS struct) the
"hWndInsertAfter" argument/field means the window that will be
directly above after the change, not the window that will be
directly below. MSDN says "precedes" for SetWindowPos(), but
WINDOWPOS documentation is more precise: this is the window
behind which the affected window will be placed. Apparently,
Z-axis goes back-to-front.
Therefore, logging should be reworded correctly.
2) When we switch away from the application and then switch back
to a transient window, we need to bring up its transient-owner
(and its transient-owner's owner and so forth) as well,
otherwise our transient (modal) window might be transient for
something that might not be visible.
3) When we bring up a window, we should bring all of its children
(popup windows) on top of it.
Because Windows doesn't provide a function to bring one window
on top of the other, we have to work around this by calling
SetWindowPos() twice, swapping the windows between the calls.
Balázs Úr [Sat, 1 Jun 2019 11:26:53 +0000 (11:26 +0000)]
Update Hungarian translation
Matthias Clasen [Sat, 1 Jun 2019 04:11:22 +0000 (04:11 +0000)]
Remove an unused enum
No use of GtkArrowPlacement anywhere.
Matthias Clasen [Sat, 1 Jun 2019 03:53:13 +0000 (03:53 +0000)]
Merge branch 'global-coords' into 'master'
Drop global coordinates
See merge request GNOME/gtk!899
Matthias Clasen [Sat, 1 Jun 2019 03:47:19 +0000 (03:47 +0000)]
Update css node results
Matthias Clasen [Sat, 1 Jun 2019 03:39:12 +0000 (03:39 +0000)]
Fix menu item accessible
The menu shell is not a direct parent anymore.
Matthias Clasen [Sat, 1 Jun 2019 03:20:03 +0000 (03:20 +0000)]
tests: Fix issues with menu shells
The menu shell is no longer the direct
parent of menu items.
Matthias Clasen [Sat, 1 Jun 2019 03:19:30 +0000 (03:19 +0000)]
menu: Fix destruction
Now that menubar and menu are containers
with internal structure, we need to be
careful about doing the right thing in
forall and dispose.
Matthias Clasen [Sat, 1 Jun 2019 00:03:15 +0000 (00:03 +0000)]
Merge branch 'convert-dialog' into 'master'
Convert dialog
See merge request GNOME/gtk!898
Matthias Clasen [Fri, 31 May 2019 23:25:06 +0000 (23:25 +0000)]
menu: Fix keynav between submenus
Left/Right arrow now work again to enter
or leave a submenu.
Matthias Clasen [Fri, 31 May 2019 20:55:55 +0000 (20:55 +0000)]
menu: Bring back the scroll keybindings
Home, End, Page Up/Down, work again.
Matthias Clasen [Fri, 31 May 2019 20:29:30 +0000 (20:29 +0000)]
menu: Keep selected item in view
This gets us most of the way to working scrolling.
Matthias Clasen [Fri, 31 May 2019 03:20:50 +0000 (03:20 +0000)]
More menu work
Matthias Clasen [Fri, 31 May 2019 02:36:34 +0000 (02:36 +0000)]
More menu restructuring
Make GtkMenuBar use a box as well,
and let GtkMenuShell get the items
from GtkMenuBar and GtkMenu via
a vfunc. Use that to fix the keynav
implementation in GtkMenuShell.
Matthias Clasen [Thu, 30 May 2019 23:07:24 +0000 (23:07 +0000)]
menu: Use a scrolled window
This brings back some support for scrolling.
We still need to reinstate some of the
scroll-to-selected and keynav functionality.
Matthias Clasen [Thu, 30 May 2019 20:10:03 +0000 (20:10 +0000)]
menu: Use a box
This makes some of the GtkMenuShell api
no longer work, since we don't let the
menu shell code maintain the list of
children anymore.
Matthias Clasen [Wed, 29 May 2019 22:02:54 +0000 (22:02 +0000)]
Drop gdk_event_get_root_coords
Matthias Clasen [Wed, 29 May 2019 22:03:10 +0000 (22:03 +0000)]
widget: Stop setting root coords in events
Nothing should use them anymore.
Matthias Clasen [Wed, 29 May 2019 21:49:27 +0000 (17:49 -0400)]
win32: Stop using gdk_event_get_root_coords
It seems we want local coords here anyway.
Matthias Clasen [Wed, 29 May 2019 21:44:48 +0000 (17:44 -0400)]
menu: Remove global coordinates
This commit removes support for scrolling and
for the keep-up triangle from GtkMenu, and gets
rid of all use of global coordinates.
Benjamin Otte [Fri, 26 Apr 2019 15:50:44 +0000 (17:50 +0200)]
menu: Only set position in one place
Benjamin Otte [Wed, 24 Apr 2019 23:27:58 +0000 (01:27 +0200)]
menu: Simplify function
No need to do complicated math when we can just look at the allocation.
Benjamin Otte [Sun, 21 Apr 2019 13:50:24 +0000 (15:50 +0200)]
menuitem: Introduce gtk_menu_item_get_menu_shell()
Returns the parent menu shell or NULL.
Replace all calls to gtk_widget_get_parent() with this function.
Matthias Clasen [Fri, 31 May 2019 19:42:18 +0000 (19:42 +0000)]
simplify: Add a testcase for templates
Matthias Clasen [Fri, 31 May 2019 19:39:17 +0000 (19:39 +0000)]
simplify: Add a testcase for dialogs
Piotr Drąg [Fri, 31 May 2019 18:43:51 +0000 (20:43 +0200)]
Update POTFILES.in
Lubomir Rintel [Thu, 30 May 2019 07:44:44 +0000 (09:44 +0200)]
builder-tool: Rewrite GtkDialog
Changes
<object class="GtkDialog">
<child internal-child="vbox">
<...>
<child internal-child="action_area">...</child>
...
</...>
<packing />
</child>
<object>
to
<object class="GtkDialog">
<child internal-child="content_area">
<...>
...
</...>
</child>
<child internal-child="action_area">...</child>
<object>
Matthias Clasen [Fri, 31 May 2019 15:32:49 +0000 (15:32 +0000)]
Merge branch 'overlay-scrolling-setting' into 'master'
Overlay scrolling setting
See merge request GNOME/gtk!873
Matthias Clasen [Wed, 22 May 2019 19:34:46 +0000 (19:34 +0000)]
scrolled window: respect overlay-scrolling setting
If the gtk-overlay-scrolling setting is FALSE,
don't use overlay scrollbars.
Matthias Clasen [Wed, 22 May 2019 19:24:24 +0000 (19:24 +0000)]
Add a gtk-overlay-scrolling setting
This is in preparation for letting user opt out of
overlay scrolling in the control-center.
Matthias Clasen [Fri, 31 May 2019 10:57:27 +0000 (10:57 +0000)]
Merge branch 'wip/chergert/remove-cclosure' into 'master'
gtk: rely on default marshallers
See merge request GNOME/gtk!893
Benjamin Otte [Fri, 31 May 2019 04:07:11 +0000 (04:07 +0000)]
Merge branch 'for-master' into 'master'
For master
See merge request GNOME/gtk!892
Christian Hergert [Fri, 31 May 2019 03:56:50 +0000 (20:56 -0700)]
gtk: rely on default marshallers
Similar to previous removals of g_cclosure_marshal_VOID__VOID we can remove
other marshallers for which are a simple G_TYPE_NONE with single parameter.
In those cases, GLib will setup both a c_marshaller and va_marshaller for
us. Before this commit, we would not get a va_marshaller because the
c_marshaller is set.
Related to GNOME/Initiatives#10
Benjamin Otte [Fri, 31 May 2019 03:35:04 +0000 (05:35 +0200)]
widget: fix CSS transforms with margins
The CSS transform should operate on the border-box, not the margin box.
So we need to shrink the bounds by the margin before we apply the CSS
transform.
Benjamin Otte [Fri, 31 May 2019 03:23:42 +0000 (05:23 +0200)]
gtk-demo: Fix sliding puzzle demo
1. Menubuttons aren't buttons
2. For paintables without aspect ratios, use 1.0
Niels De Graef [Thu, 30 May 2019 18:49:48 +0000 (18:49 +0000)]
Merge branch 'wip/nielsdg/fix-gir-warnings' into 'master'
Fix some GObject introspection annotations
See merge request GNOME/gtk!891
Niels De Graef [Thu, 30 May 2019 15:05:02 +0000 (17:05 +0200)]
Fix some GObject introspection annotations
Fixes several warnings by the GIR compiler.
Matthias Clasen [Thu, 30 May 2019 12:24:18 +0000 (12:24 +0000)]
Add a testcase
This tests the fix in
1e7225aa1c20525da0.
Benjamin Otte [Thu, 30 May 2019 16:34:51 +0000 (18:34 +0200)]
build: Make script interpreter optional
Running the tests needs it though, so it's only optional without tests.
Benjamin Otte [Thu, 30 May 2019 16:26:32 +0000 (18:26 +0200)]
docs: Fix build
Benjamin Otte [Thu, 30 May 2019 15:48:02 +0000 (15:48 +0000)]
Merge branch 'cairo-script-interpreter' into 'master'
rendernodeparser: Parse cairo script
See merge request GNOME/gtk!876